Чек-лист самопроверки
Чек-лист самопроверки
- Что такое C++ и чем он отличается от C?
- Какие парадигмы программирования поддерживает C++?
- Что означает принцип «нулевой стоимости абстракций»?
- Как происходит компиляция и линковка C++-программы?
- Что такое препроцессор и какие директивы он поддерживает?
- Что такое заголовочные файлы и зачем нужны include guards или
#pragma once? - Какие есть фундаментальные типы данных в C++?
- В чём разница между
int,long,size_t,ptrdiff_t? - Что такое
constи как он применяется к переменным, указателям, функциям? - Что такое ссылки и указатели — и чем они отличаются?
- Как работает приведение типов в C++ (
static_cast,dynamic_cast,const_cast,reinterpret_cast)? - Что такое область видимости и продолжительность жизни переменной?
- Что такое автоматические, статические и динамические переменные?
- Как работают условные операторы (
if,switch)? - Какие циклы поддерживаются (
for,while,do-while, range-based for`)? - Что такое функции и как передаются аргументы (по значению, по ссылке, по указателю)?
- Что такое перегрузка функций?
- Что такое inline-функции и зачем они нужны?
- Что такое пространства имён и как их использовать?
- Что такое класс и чем он отличается от структуры?
- Какие спецификаторы доступа существуют (
public,private,protected)? - Что такое конструктор, деструктор, конструктор копирования, оператор присваивания?
- Что такое правило трёх (Rule of Three) и правило пяти (Rule of Five)?
- Что такое move semantics и rvalue-ссылки?
- Что такое
std::moveи когда его применять? - Что такое RAII и как он реализуется?
- Что такое умные указатели (
unique_ptr,shared_ptr,weak_ptr)? - Что такое наследование и как оно работает в C++?
- Что такое виртуальные функции и полиморфизм?
- Что такое чисто виртуальные функции и абстрактные классы?
- Почему множественное наследование в C++ считается сложным?
- Что такое шаблоны и как они обеспечивают обобщённое программирование?
- В чём разница между шаблонами функций и шаблонами классов?
- Что такое SFINAE и как оно использовалось до C++20?
- Что такое концепты (concepts) и как они упрощают шаблоны?
- Что такое лямбда-выражения и как они захватывают переменные?
- Что такое стандартная библиотека (STL) и из чего она состоит?
- Какие основные контейнеры есть (
vector,list,map,unordered_map,set,array)? - В чём разница между последовательными и ассоциативными контейнерами?
- Что такое итераторы и какие категории итераторов существуют?
- Как работают алгоритмы из
<algorithm>(sort,find,transform,accumulate)? - Что такое исключения и как их обрабатывать (
try/catch/throw)? - Что такое noexcept и зачем он нужен?
- Как работает многопоточность в C++ (
std::thread,std::mutex,std::async)? - Что такое futures и promises?
- Что такое атомарные операции и
std::atomic? - Что такое модули в C++20 и как они заменяют заголовочные файлы?
- Что такое корутины и как они работают в C++20?
- Что такое диапазоны (ranges) и как они упрощают работу с коллекциями?
- Какие современные практики рекомендуются в C++20/C++23 (например, использование
std::format,std::span,char8_t)?
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). При работе в C++ нужно детально — работать с файлами в проекте, обеспечивать совместимость компонентов (из-за разных поколений C++, многие решения и библиотеки могут не работать в новых версиях,… C++ — это язык программирования, обладающий уникальной способностью адаптироваться к широкому спектру задач — от системного программирования и встраиваемых устройств до высокопроизводительных… Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Гайд по установке и настройке с написанием первой программы и её запуском. Директива препроцессора include используется для подключения заголовочных файлов в исходный код. Она сообщает компилятору вставить содержимое указанного файла в текущее место перед началом компиляции. Конфигурация — это набор правил и переменных, которые управляют процессом превращения исходного текста в исполняемый продукт. Примеры простых и полезных консольных приложений с демонстрацией концепций языка. Набор советов, правил, принципов и обычаев в разработке на этом языке. Типизация, набор правил определения типа данных значений языка. Операторы — это символы или комбинации символов, которые обозначают операции, совершаемые над данными (операндами). В C++ операторы играют центральную роль в выражениях — конструкциях, вычисляющих… С точки зрения семантики, цикл в C++ — это синтаксическая обёртка над переходами управления, реализуемых на уровне машинного кода (в частности, через безусловные и условные переходы — jmp, jne, jl и… Объектно-ориентированное программирование (ООП) — это парадигма, в которой программа строится вокруг объектов, объединяющих данные и поведение, с которыми эти данные связаны. Эта модель позволяет…C++ - язык системного программирования
Экосистема приложений на C++
Что требуется знать перед началом изучения языка программирования C++
Первая программа на C++
Начало работы с C++
Конфигурация и сборка в C++
Простые приложения на C++
Рекомендации по разработке на C++
Типы данных в C++
Операторы и выражения в C++
Циклы и управляющие конструкции в C++
Объектно-ориентированное программирование в C++